diff --git a/tests/Bootstrap.php b/tests/Bootstrap.php
index 94dafdc..db5ffbd 100644
--- a/tests/Bootstrap.php
+++ b/tests/Bootstrap.php
@@ -17,4 +17,12 @@
 require_once $dir.'/lib/common.php';
 require_once $dir.'/lib/ci_testcase.php';
 
+
+// Omit files in the PEAR & PHP Paths from ending up in the coverage report
+PHP_CodeCoverage_Filter::getInstance()->addDirectoryToBlacklist(PEAR_INSTALL_DIR);	
+PHP_CodeCoverage_Filter::getInstance()->addDirectoryToBlacklist(PHP_LIBDIR);	
+
+// Omit Tests from the coverage reports.
+// PHP_CodeCoverage_Filter::getInstance()
+
 unset($dir);
\ No newline at end of file
diff --git a/tests/codeigniter/helpers/Array_helper_test.php b/tests/codeigniter/helpers/array_helper_test.php
similarity index 100%
rename from tests/codeigniter/helpers/Array_helper_test.php
rename to tests/codeigniter/helpers/array_helper_test.php
diff --git a/tests/codeigniter/helpers/html_helper_test.php b/tests/codeigniter/helpers/html_helper_test.php
new file mode 100644
index 0000000..3b7f2b3
--- /dev/null
+++ b/tests/codeigniter/helpers/html_helper_test.php
@@ -0,0 +1,67 @@
+<?php
+
+require_once(BASEPATH.'helpers/html_helper.php');
+
+class Html_helper_test extends PHPUnit_Framework_TestCase
+{
+	public function testHeading()
+	{
+		$this->assertEquals('<h1>foobar</h1>', heading('foobar'));
+	}
+
+	// ------------------------------------------------------------------------
+	
+	public function testUl()
+	{
+		$expect = <<<EOH
+<ul>
+  <li>foo</li>
+  <li>bar</li>
+</ul>
+
+EOH;
+
+		$expect = ltrim($expect);
+
+		$list = array('foo', 'bar');
+		
+		$this->assertEquals($expect, ul($list));
+
+
+		$expect = <<<EOH
+<ul class="test">
+  <li>foo</li>
+  <li>bar</li>
+</ul>
+
+EOH;
+
+		$expect = ltrim($expect);
+
+		$list = array('foo', 'bar');
+
+		$this->assertEquals($expect, ul($list, ' class="test"'));
+
+		$this->assertEquals($expect, ul($list, array('class' => 'test')));
+	}
+	
+	// ------------------------------------------------------------------------
+
+	public function testNBS()
+	{
+		$this->assertEquals('&nbsp;&nbsp;&nbsp;', nbs(3));
+	}
+
+	// ------------------------------------------------------------------------
+	
+	public function testMeta()
+	{
+		$this->assertEquals("<meta name=\"test\" content=\"foo\" />\n", meta('test', 'foo'));
+		
+		$expect = "<meta name=\"foo\" content=\"\" />\n";
+		
+		$this->assertEquals($expect, meta(array('name' => 'foo')));
+		
+	}
+	
+}
\ No newline at end of file
diff --git a/tests/phpunit.xml b/tests/phpunit.xml
index 9e5e10d..1e712a1 100644
--- a/tests/phpunit.xml
+++ b/tests/phpunit.xml
@@ -1,17 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <phpunit 
-	bootstrap="Bootstrap.php"
+	bootstrap="./Bootstrap.php"
 	colors="true">
 	<testsuites>
 		<testsuite name="CodeIgniter Core Test Suite">
 			<file>codeigniter/Setup_test.php</file>
 			<directory suffix="test.php">codeigniter/core</directory>
-			
+			<directory suffix="test.php">codeigniter/helpers</directory>
 			<!-- We'll worry about these later ...
 			<directory suffix="test.php">codeigniter/libraries</directory>
 			<directory suffix="test.php">codeigniter/helpers</directory>
 			-->
+			
 		</testsuite>
 	</testsuites>
 </phpunit>
\ No newline at end of file
